package com.xdw.permissionslib.sample.slice;

import com.xdw.permissionslib.mylibrary.StrongPermissionsUtils;
import com.xdw.permissionslib.mylibrary.ToastUtil;
import com.xdw.permissionslib.sample.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.security.SystemPermission;

public class MainAbilitySlice extends AbilitySlice {
    //定义需要动态申请的权限组，可以是一个或多个权限。这里的权限还必须要在config.json中进行配置
    private String[] permissions = {
            // 存储权限
            SystemPermission.WRITE_USER_STORAGE,
            // 相机权限
            SystemPermission.CAMERA
    };
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //开始动态申请权限，链式调用。这里做简单测试，直接放到onStart中触发
        //实际开发中申请权限的动作应该放到需要用到该权限的操作中触发，比如点击某个按钮调起相机
        StrongPermissionsUtils.getInstance(this).checkPermissions(this,permissions).setPermissionStateListener(new StrongPermissionsUtils.PermissionStateListener() {
            @Override
            public void onPermissionGranted() {
                //授权成功之后的回调
                //此处根据自己的实际业务编写业务逻辑，此处用toast进行演示
                ToastUtil.toast(getContext(),"授权成功");
            }

            @Override
            public void onPermissionDenied(boolean isDisabledPrompt) {
                //授权拒绝之后的回调
                //此处根据自己的实际业务编写业务逻辑，此处用toast进行演示
                if(isDisabledPrompt){
                    ToastUtil.toast(getContext(),"您之前拒绝了授权并且禁止系统再提示，需要手动进入系统设置页面开启");
                }else{
                    ToastUtil.toast(getContext(),"您拒绝了授权");
                }
            }
        });
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}
